import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

//通过tcp socket的方式构造HTTP请求（按照HTTP请求格式往TCP socket中写入字符串）
//在工作中都直接用现成工具构造：postman、API fox
public class HttpClient {
    //通过get方法发起一个HTTP GET请求
    public void get(String url) throws IOException{
        //构造HTTP结构的字符串
        try(InputStream inputStream=socket.getInputStream();
            OutputStream outputStream=socket.getOutputStream()){
            String firstLine="GET"+url+"HTTP/1.1\n";//构造首行
            String headers="Host: "+socket.getInetAddress().getHostAddress()+":"+socket.getPort()+"\n";//构造头部
            String blankLine="\n";//构造空行
            String httpRequest=firstLine+headers+blankLine;//因为是get方法所以httpRequest没有body

            outputStream.write(httpRequest.getBytes());//把请求变成字节数组写进服务器
            outputStream.flush();//冲刷缓冲区

            //发送出请求之后，还需要读取响应
            byte[] bytes=new byte[1024*1024];
            int n=inputStream.read(bytes);//把
            String httpResponse=new String(bytes,0,n);
            System.out.println(httpResponse);
        }catch (IOException e){
            e.printStackTrace();
        }
        return;
    }
}
